package ar.com.psicosoft.model.psicosoft;

import java.io.Serializable;
import javax.persistence.*;
import java.sql.Timestamp;
import java.util.List;

/**
 * The persistent class for the agenda_def database table.
 * 
 */
@Entity
@Table(name = "agenda_def", schema = "psicosoft" )
@NamedQuery(name = "AgendaDef.findAll", query = "SELECT a FROM AgendaDef a")
public class AgendaDef implements Serializable {
	private static final long serialVersionUID = 1L;

	@Id
	@SequenceGenerator(name = "sec_agenda_def", sequenceName = "psicosoft.sec_agenda_def")
	@GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "sec_agenda_def")
	@Column(name = "\"idAgendaDef\"", unique = true, nullable = false)
	private Integer idAgendaDef;

	@Column(name = "\"duracionTurno\"")
	private Integer duracionTurno;

	@Column(name = "\"fechaBaja\"")
	private Timestamp fechaBaja;

	@Column(name = "\"idPersona\"", nullable = false)
	private Integer idPersona;

	@Column(name = "\"nombreAgendaDef\"", length = 50)
	private String nombreAgendaDef;

	@Column(nullable = false, length = 2147483647)
	private String tipo;

	// bi-directional many-to-one association to Agenda
	@OneToMany(mappedBy = "agendaDef")
	private List<Agenda> agendas;

	// bi-directional many-to-one association to AgendaHorario
	@OneToMany(mappedBy = "agendaDef")
	private List<AgendaHorario> agendaHorarios;

	public AgendaDef() {
	}

	public Integer getIdAgendaDef() {
		return this.idAgendaDef;
	}

	public void setIdAgendaDef(Integer idAgendaDef) {
		this.idAgendaDef = idAgendaDef;
	}

	public Integer getDuracionTurno() {
		return this.duracionTurno;
	}

	public void setDuracionTurno(Integer duracionTurno) {
		this.duracionTurno = duracionTurno;
	}

	public Timestamp getFechaBaja() {
		return this.fechaBaja;
	}

	public void setFechaBaja(Timestamp fechaBaja) {
		this.fechaBaja = fechaBaja;
	}

	public Integer getIdPersona() {
		return this.idPersona;
	}

	public void setIdPersona(Integer idPersona) {
		this.idPersona = idPersona;
	}

	public String getNombreAgendaDef() {
		return this.nombreAgendaDef;
	}

	public void setNombreAgendaDef(String nombreAgendaDef) {
		this.nombreAgendaDef = nombreAgendaDef;
	}

	public String getTipo() {
		return this.tipo;
	}

	public void setTipo(String tipo) {
		this.tipo = tipo;
	}

	public List<Agenda> getAgendas() {
		return this.agendas;
	}

	public void setAgendas(List<Agenda> agendas) {
		this.agendas = agendas;
	}

	public Agenda addAgenda(Agenda agenda) {
		getAgendas().add(agenda);
		agenda.setAgendaDef(this);

		return agenda;
	}

	public Agenda removeAgenda(Agenda agenda) {
		getAgendas().remove(agenda);
		agenda.setAgendaDef(null);

		return agenda;
	}

	public List<AgendaHorario> getAgendaHorarios() {
		return this.agendaHorarios;
	}

	public void setAgendaHorarios(List<AgendaHorario> agendaHorarios) {
		this.agendaHorarios = agendaHorarios;
	}

	public AgendaHorario addAgendaHorario(AgendaHorario agendaHorario) {
		getAgendaHorarios().add(agendaHorario);
		agendaHorario.setAgendaDef(this);

		return agendaHorario;
	}

	public AgendaHorario removeAgendaHorario(AgendaHorario agendaHorario) {
		getAgendaHorarios().remove(agendaHorario);
		agendaHorario.setAgendaDef(null);

		return agendaHorario;
	}

}